package com.jy.oms.framework.asyn.task.executor;

import com.jy.oms.framework.asyn.task.model.TaskWrapper;

/**
 * 任务回调监听器
 *
 * @author liuquan
 */
public interface ITaskLifecycleListener {

    /**
     * 任务执行超时监听器
     *
     * @param taskWrapper 任务
     */
    default void onTimeout(TaskWrapper taskWrapper) {
    }

    /**
     * 任务执行完监听器
     *
     * @param taskWrapper 任务
     */
    void onFinish(TaskWrapper taskWrapper);

    /**
     * 任务被过滤监听器
     *
     * @param taskWrapper 任务
     */
    default void onFilter(TaskWrapper taskWrapper) {
    }

    enum TaskLifecycleEnum {
        Timeout, Finish, Filter
    }
}
